package main

import (
	_ "embed"
	"github.com/gin-gonic/gin"
	"log"
	"net/http"
)

func main() {
	// 创建一个服务器
	server := gin.Default()

	// 准备渲染模板
	// 在 IDE 里面直接运行的时候，要将 workspace 调整为当前目录
	server.LoadHTMLFiles("./form.gohtml")

	// 获得表单页面
	server.GET("/form", func(context *gin.Context) {
		context.HTML(http.StatusOK, "form.gohtml", nil)
	})

	// 提交表单
	server.POST("/form", func(context *gin.Context) {
		var u User
		// 要传入指针
		if err := context.Bind(&u); err != nil {
			context.String(http.StatusBadRequest, err.Error())
			// 写回响应之后别忘了 return
			return
		}
		context.Redirect(http.StatusTemporaryRedirect, "/home")
	})

	server.Any("/home", func(context *gin.Context) {
		context.String(http.StatusOK, "你已经登录成功")
	})

	if err := server.Run(":8080"); err != nil {
		log.Fatal(err)
	}
}

type User struct {
	// 这个字段被我修改为 user_name，即表单里面要用 user_name
	Name     string `form:"user_name"`
	Password string `form:"password"`
}
